// 1. 引入 express 模块
const express = require("express");

// 2. 创建应用对象
const app = express();

// 一、什么是应用中间件?
// 通过app.use() 或者app.post()或 app.get(), 绑定到app实例对象上的函数,都是应用中间件
// app.use(function (req, res, next) {
//   console.log("这是第一个中间件 - 全局应用中间件");
//   // 放行
//   next();
// });

const mw1 = function (req, res, next) {
  console.log("这是第一个中间件 - 局部应用中间件");
  // 放行
  next();
};
app.get("/", mw1, function (req, res) {
  console.log("这是第二个中间件 - 局部应用中间件");
  res.send("hello express - /");
});

// 二、路由中间件
const router = express.Router();
router.use(function (req, res, next) {
  console.log("这是路由中间件 - 全局路由中间件");
  next();
});
router.get("/user", function (req, res) {
  res.send("hello express - /user");
});
// 将路由模块注册到app应用中
app.use(router);

app.use(function (req, res, next) {
  console.log("这是第一个中间件 - 全局应用中间件");
  // 放行
  next();
});




// 3. 监听端口启动服务
app.listen(3000, function () {
  console.log("Express server is running at http://127.0.0.1:3000");
});
